package com.breeze.toolkit.util;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.text.TextUtils;
import android.util.Log;

/**
 * Created by john on 2016/8/23.
 */
public class LogUtil {
	private static final String DEBUG_TAG = "xdebug";
	private static boolean sIsDebuggable = true;
	private static void enableLog(boolean isEnable) {
		sIsDebuggable = isEnable;
	}

	private LogUtil() {}

	public static boolean initDebuggable(Context context) {
		try {
			ApplicationInfo appInfo = context.getPackageManager()
					.getApplicationInfo(context.getPackageName(),
							PackageManager.GET_META_DATA);
			if (appInfo != null) {
				enableLog(appInfo.metaData.getBoolean("debuggable"));
				return sIsDebuggable;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

		return false;
	}

	public static boolean isInDebugMode() {
		return sIsDebuggable;
	}

	public static void i(String tag, String msg) {
		if (sIsDebuggable && !TextUtils.isEmpty(msg)) {
			Log.i(tag , msg);
		}
	}

	public static void e(String tag, String msg) {
		if (sIsDebuggable && !TextUtils.isEmpty(msg)) {
			Log.e(tag , msg);
		}
	}

	public static void w(String tag , String msg) {
		if (sIsDebuggable && !TextUtils.isEmpty(msg)) {
			Log.w(tag, msg);
		}
	}

	public static void w(String tag , String msg, Throwable tr) {
		if (sIsDebuggable && !TextUtils.isEmpty(msg)) {
			Log.w(tag, msg, tr);
		}
	}

	public static void d(String tag , String msg) {
		if (sIsDebuggable && !TextUtils.isEmpty(msg)) {
			Log.d(tag, msg);
		}
	}

	public static void v(String tag , String msg) {
		if (sIsDebuggable && !TextUtils.isEmpty(msg)) {
			Log.v(tag, msg);
		}
	}

	public static void i(String msg) {
		i(DEBUG_TAG, msg);
	}

	public static void e(String msg) {
		if (sIsDebuggable && !TextUtils.isEmpty(msg)) {
			Log.e(DEBUG_TAG , msg);
		}
	}
}
